package com.demo.carrotsearch;

import java.util.ArrayList;
import java.util.List;

import com.carrotsearch.sizeof.RamUsageEstimator;

/**
 * 查看Java对象的内存大小 添加依赖
 * 
 * 
 * @author xiangty
 *
 */
public class JavaSizeOfDemo {
	public static void main(String[] args) {
		List<Object> list = new ArrayList<>();

		for (int i = 0; i < 1000_000; i++) {
			list.add("value" + i);
		}

		// 返回对象本身的大小，不包含引用对象 单位：B
		System.out.println(RamUsageEstimator.shallowSizeOf(list));
		// 查看大小，返回的是字节 单位：B
		System.out.println(RamUsageEstimator.sizeOf(list));
		// 返回装换后的大小（便于观察） 单位： MB
		System.out.println(RamUsageEstimator.humanSizeOf(list));
	}
}
